/*!
 @header UIButton+Init.h
 @abstract UIButton分类
 @author BruceHu
 @version 1.00 2020/08/31 Creation
 */

#import <UIKit/UIKit.h>
/*!
 @enum
 @abstract button图片的位置
 @constant ArrangePositionImageLeftTitleRight 默认图左标题右
 @constant ArrangePositionImageRightTitleLeft 图右标题左
 @constant ArrangePositionImageTopTitleBottom 图上标题下
 @constant ArrangePositionImageBottomTitleTop 图下标题上
 */
typedef NS_ENUM(NSInteger, ArrangePosition) {
    ArrangePositionImageLeftTitleRight = 0, // 默认图左标题右
    ArrangePositionImageRightTitleLeft,     // 图右标题左
    ArrangePositionImageTopTitleBottom,     // 图上标题下
    ArrangePositionImageBottomTitleTop      // 图下标题上
};

@interface UIButton (Init)
/*!
 @method
 @abstract 根据背景色+文字，创建按钮
 @discussion 根据背景色+文字，创建按钮
 @param backgroundColor 按钮背景色
 @param title 按钮标题
 @param font 按钮标题字体
 @param titleColor 按钮标题字体颜色
 @param alinment 按钮标题对齐方式
 @return 返回创建好的按钮
 */
+ (instancetype)buttonWithBackgroundColor:(UIColor *)backgroundColor
                                    title:(NSString *)title
                                titleFont:(UIFont *)font
                               titleColor:(UIColor *)titleColor
                             textAlinment:(UIControlContentHorizontalAlignment)alinment;

/*!
 @method
 @abstract 根据图片+文字，创建按钮
 @discussion 根据图片+文字，创建按钮
 @param imageName  图片名字
 @param title 按钮标题
 @param titleColor 按钮标题颜色
 @param font 按钮标题字体
 @param position   图片和文字位置
 @return 调整位置后按钮
 */
+ (instancetype)buttonWithImage:(NSString *)imageName
                          title:(NSString *)title
                     titleColor:(UIColor *)titleColor
                      titleFont:(UIFont *)font
                arrangePosition:(ArrangePosition)position;

/*!
 @method
 @abstract 根据图片+文字，创建按钮（唯一不同之处在于按钮创建方式不同）
 @discussion 根据图片+文字，创建按钮（唯一不同之处在于按钮创建方式不同）
 @param imageName  图片名字
 @param title 按钮标题
 @param titleColor 按钮标题颜色
 @param font 按钮标题字体
 @param position   图片和文字位置
 @return 调整位置后按钮
 */
+ (instancetype)WSbuttonWithImage:(NSString *)imageName
                            title:(NSString *)title
                       titleColor:(UIColor *)titleColor
                        titleFont:(UIFont *)font
                  arrangePosition:(ArrangePosition)position;

/*!
 @method
 @abstract 根据文字设置，创建按钮
 @discussion 根据文字设置，创建按钮
 @param title 按钮标题
 @param titleColor 按钮标题颜色
 @param font 按钮标题字体
 @return 调整位置后按钮
 */
+ (instancetype)buttonWithTitle:(NSString*)title
                     titleColor:(UIColor *)titleColor
                      titleFont:(UIFont *)font;

/*!
 @method
 @abstract 根据图片名字，创建按钮
 @discussion 根据图片名字，创建按钮
 @param imageName 图片名字
 @return 创建好的按钮
 */
+ (instancetype)buttonWithImageName:(NSString *)imageName;

/*!
 @property
 @abstract 新增加一个属性，用来判断是否使用水波纹效果
 */
@property (nonatomic, assign) BOOL isUseRipple;
@end
